package com.mfs.proxy.core.server.endpoint;

import java.io.Closeable;
import java.nio.channels.SelectionKey;

/**
 * 代理端点，一个代理客户端对应着一个Proxy Endpoint。
 * 监听proxyIp:proxyPort地址，处理代理请求
 *
 * @author mfs
 * @date 2023/7/2 12:05
 **/
public interface ProxyEndpoint extends Closeable {
    /**
     * 获取端点名称
     * */
    String getName();

    /**
     * 获取代理ip
     * */
    String getProxyIp();

    /**
     * 获取代理端口
     * */
    Integer getProxyPort();

    /**
     * 处理代理请求
     *
     * @param selectionKey 请求句柄
     * */
    void processProxyRequest(SelectionKey selectionKey);
}
